{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Inverse Demand Problem\n", "\n", "**Randall Romero Aguilar, PhD**\n", "\n", "This demo is based on the original Matlab demo accompanying the Computational Economics and Finance 2001 textbook by Mario Miranda and Paul Fackler.\n", "\n", "Original (Matlab) CompEcon file: **demintro01.m**\n", "\n", "Running this file requires the Python version of CompEcon. This can be installed with pip by running\n", "\n", " !pip install compecon --upgrade\n", "\n", "Last updated: 2022-Ago-19\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "plt.style.use('seaborn-dark')\n", "plt.style.use('seaborn-talk') # bigger fonts" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Iteration Price\n", " 0 0.0843\n", " 1 0.1363\n", " 2 0.1558\n", " 3 0.1539\n", " 4 0.1543\n", " 5 0.1542\n", " 6 0.1542\n", " 7 0.1542\n", " 8 0.1542\n", " 9 0.1542\n", " 10 0.1542\n", " 11 0.1542\n", "The equilibrium price is 0.154, where demand is 2.00\n" ] } ], "source": [ "demand = lambda p: 0.5 * p ** -0.2 + 0.5 * p ** -0.5\n", "derivative = lambda p: -0.01 * p ** -1.2 - 0.25 * p ** -1.5\n", "\n", "\n", "print('%12s %8s' % ('Iteration', 'Price'))\n", "p = 0.25\n", "for it in range(100):\n", " f = demand(p) - 2\n", " d = derivative(p)\n", " s = -f / d\n", " p += s\n", " print(f'{it:10d} {p:8.4f}')\n", " if np.linalg.norm(s) < 1.0e-8:\n", " break\n", "\n", "pstar = p\n", "qstar = demand(pstar)\n", "print(f'The equilibrium price is {pstar:.3f}, where demand is {qstar:.2f}')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Generate demand function\n", "n, a, b = 100, 0.02, 0.40\n", "p = np.linspace(a, b, n)\n", "q = demand(p)\n", "\n", "# Graph demand function\n", "fig1, (ax0, ax1) = plt.subplots(1, 2, figsize=[12,6])\n", "ax0.plot(p, q)\n", "\n", "ax0.set(title='Demand',\n", " aspect=0.1,\n", " xlabel='price',\n", " xticks=[0.0, 0.2, 0.4],\n", " xlim=[0, 0.4],\n", " ylabel='quantity',\n", " yticks=[0, 2, 4],\n", " ylim=[0, 4])\n", "\n", "# Graph inverse demand function\n", "ax1.plot(q, p)\n", "#ax1.plot([0, 2, 2], [pstar, pstar, 0], 'r--')\n", "ax1.hlines(pstar, 0, 2, colors=['r'], linestyles=['--'])\n", "ax1.vlines(2, 0, pstar, colors=['r'], linestyles=['--'])\n", "ax1.plot([2], [pstar], 'ro', markersize=12)\n", "\n", "ax1.set(title='Inverse Demand', \n", " aspect=10,\n", " xlabel='quantity',\n", " xticks=[0, 2, 4], \n", " xlim=[0, 4],\n", " ylabel='price',\n", " yticks=[0.0, pstar, 0.2, 0.4],\n", " yticklabels=['0.0', '$p^{*}$', '0.2', '0.4'], \n", " ylim=[0, 0.4]);" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig2, ax = plt.subplots(figsize=[8,5])\n", "ax.axhline(0, color='w')\n", "ax.plot(p, q-2)\n", "\n", "ax.set(xlabel='market price',\n", " xticks=[0.1, 0.2, 0.3], \n", " xlim=[0.1, 0.3],\n", " ylabel='excess demand', \n", " yticks=[-0.4, 0, 0.4], \n", " ylim=[-0.4, 0.4])\n", "\n", "ax.annotate(f'$p^*={pstar:.2f}$', \n", " (pstar, 0), \n", " (pstar+0.01, 0.08), \n", " color='C2', \n", " fontsize=16, \n", " arrowprops=dict(edgecolor='C2', facecolor='C2'));\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.9.7 ('base')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" }, "vscode": { "interpreter": { "hash": "ad2bdc8ecc057115af97d19610ffacc2b4e99fae6737bb82f5d7fb13d2f2c186" } } }, "nbformat": 4, "nbformat_minor": 2 }